home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Meeting Pearls 2
/
Meeting Pearls Vol. II (1995)(GTI - Schatztruhe)[!].iso
/
Pearls
/
disk
/
DiskMon
/
DisKey2.1
/
Map.README
< prev
next >
Wrap
Text File
|
1990-10-31
|
8KB
|
229 lines
map.device und Dummy-Handler
############################
Version 1.0 (10.10.90)
von
Bernhard Möllemann
Spöcker Weg 23c
7514 Eggenstein
E-Mail: s_moellemann@iravcl.ira.uka.de
I. Disclaimer:
==============
Das map.device und der Dummy-Handler sind Freeware und dürfen nur für
nicht-gewerbliche Zwecke frei kopiert und benutzt werden, solange folgende
Bestimmungen eingehalten werden:
1. map.device und Dummy-Handler dürfen nur zusammen mit diesem
Dokumentationsfile verbreitet werden.
2. Das Dokumentationsfile darf nur auf elektronischen Datenträgern
(Diskette usw.) und nur zusammen mit dem map.device und dem
Dummy-Handler verbreitet werden.
3. Der Preis für die Weitergabe darf die Kopierkosten nicht übersteigen.
II. Anleitung:
==============
Das map.device erlaubt in Verbindung mit dem Dummy-Handler die Bearbeitung
des Speichers von einem Diskettenmonitor aus, der verschiedene Devices wie
Festplatte oder resetfeste Ramdisk bearbeiten kann.
Das map.device kann auch als Ramdisk verwendet werden, indem man es auf
einen dem System unbekannten Speicherbereich legt.
1. Die Installation:
--------------------
Wie alle diskresidenten Devices (printer.device usw.) muß auch das
map.device in den Devs:-Ordner kopiert werden:
1> copy map.device Devs:
Um als Diskette erkannt zu werden, benötigt das System einen File-Handler,
den Dummy-Handler. Dieser muß nach L: kopiert werden:
1> copy Dummy-Handler L:
Damit AmigaDOS mit dieser "Diskette" arbeiten kann, muß diese gemounted
werden:
1> mount MAP: FROM MapMountList
Natürlich kann man die MountList an seine eigene MountList im
Devs:-Verzeichnis anhängen und dann mit "mount MAP:" mounten. Nur wer das
nicht möchte, muß den "FROM"-Parameter mit angeben (Achtung, erst ab dem
1.3 Mount-Befehl!).
2. Der MountList-Eintrag:
-------------------------
MAP: FileSystem = L:Dummy-Handler
Device = map.device
Unit = 0
Flags = 0
Surfaces = 1
BlocksPerTrack = 128
Priority = 7
Reserved = 2
Interleave = 0
LowCyl = 0
HighCyl = 255
Buffers = 1
BufMemType = 1
Mount = 1
GlobVec = -1
StackSize = 512
#
FileSystem:
Damit das AmigaDOS nicht auf die Idee kommt, irgendetwas im Speicher des
Amiga zu ändern (z. B. ihn zu validaten), muß ein Handler angegeben
werden, der garantiert nichts anstellt.
Device:
Hier muß natürlich der Devicename angegeben werden.
Unit:
Hier sollte eine "0" stehen.
Flags:
Auch hier sollte wieder eine "0" stehen.
Surfaces:
Der hier eingetragene Wert ist eigentlich egal, muß aber größer als Null
sein.
BlocksPerTrack:
Auch dieser Wert muß größer als Null sein. Praktisch ist es, wenn
Surfaces*BlocksPerTrack 128 ergibt. Dann nämlich entspricht ein
Cylinder den Adress-Bits 23 bis 16, so daß man bei Diskettenmonitoren im
Cylinder nur noch die ersten beiden Hex-Ziffern eingeben muß, um an die
entsprechende Adresse zu gelangen.
Eine Kickstart (bis 1.3) beispielsweise liegt bei $FC0000. Cylinder $FC
(Head 0, Sector 0) spricht dann genau diese Adresse an (siehe auch
LowCyl und HighCyl).
Priority:
Hierbei handelt es sich um die Priorität, mit der der Handler-Prozess
gestartet wird. Sie liegt für gewöhnliche Amiga-File-Systeme bei 10.
Da dieser Handler nicht sehr viel zu tun hat, sollte er eine Priorität
von 7 erhalten.
Reserved:
Normalerweise ist hier die Anzahl der Bootblöcke angegeben. Da diese
"Diskette" über keine Bootblöcke verfügt, sollte eine "0" angegeben
werden.
Interleave:
Hier sollte eine "0" stehen.
LowCyl:
Hier kann die Anfangsadresse der "Diskette" angegeben werden. Wenn man
den Wert, der hier steht, mit "Surfaces*BlocksPerTrack*512"
multipliziert, so erhält man die Adresse des ersten Bytes, auf das man
zugreifen kann. Um auf den gesamten Speicherbereich zugreifen zu
können, sollte man hier eine "0" eintragen.
HighCyl:
Entspricht im Wesentlichen "LowCyl", jedoch wird hier die Endadresse
angegeben. Für normale Amigas empfiehlt sich der Wert "255", so daß der
gesamte Speicher, bis zur Endadresse der Kickstart, bearbeitet werden
kann. Für Amigas, die mit einem 68012 oder größer aufgerüstet sind,
kann der Wert auf "65535" erhöht werden. Wenn dann jedoch ein Programm
Speicher für die Bitmap der "Diskette" belegen muß, braucht der Amiga
mindestens 1MB freien Speicher.
Buffers:
Dieser Wert wird vom Dummy-Handler ignoriert und kann beliebig belegt
werden.
BufMemType:
Das sind die Memory-Flags für den Speicher, in den das map.device
schreiben kann. Da das map.device in jede Art Speicher schreibt, sollte
hier "1" (MEMF_PUBLIC) stehen.
Mount:
Je nachdem, ob das FileSystem sofort oder erst bei der ersten Benutzung
gestartet werden soll, muß hier "1" oder "0" stehen.
GlobVec:
Da es sich hierbei nicht um ein BCPL-Programm handelt, wird eine "-1"
eingetragen. Wer etwas anderes einträgt, braucht sich nicht zu wundern,
wenn die Maschine crasht!
StackSize:
Hier steht die Größe des Stacks, der für den Handler-Prozess angelegt
wird. Für den Dummy-Handler sind 512 Bytes mehr als genug.
3. Funktionsweise:
------------------
Das map.device ist ein blockorientiertes Device. Das heißt, daß es nur mit
Vielfachen von 512 Bytes umgehen kann. Bei Read oder Write werden also
immer komplette Blöcke gelesen und geschrieben. Deshalb ist es auch nicht
möglich, nur einzelne Bytes zu schreiben. Aus diesem Grunde sollte man
nicht in den Bereich der Customchips schreiben oder sie auslesen, auch wenn
man nur "erlaubte" Words ändert/liest. Wer es trotzdem tut, ist an
eventuellen Abstürzen des Rechners selber schuld!
Bereiche, die man meiden sollte sind:
$B00000 bis $E00000
$E80000 bis $F00000
Der erste dieser Bereiche ist bei den momentanen Amiga-Versionen zwar nicht
völlig belegt, in zukünftigen Versionen ist aber damit zu rechnen, daß auch
hier Customchips liegen können.
In den zweiten Bereich können AUTOCONFIG(TM)-Karten mit IO-Bereichen
hinkonfiguriert worden sein. Wer trotzdem hier hineinschreibt, sollte sich
schon SEHR gut mit seinem Rechner auskennen, sonst schickt er eventuell
ungewollt Befehle wie Format an seine Festplatte oder ähnliches.
4. Dummy-Handler und Ram-Disk
-----------------------------
Damit das Device überhaupt gemountet werden kann, braucht man einen
File-Handler. "Gewöhnliche" File-Handler haben jedoch die hier unangenehme
Angewohnheit, sich überall einmischen zu wollen, und aktivieren zum
Beispiel den Disk-Validator, der hier versuchen könnte, den Speicher so zu
"reparieren", daß er wie eine Diskette aussieht. Was das für Folgen haben
würde, kann sich jeder selber ausrechnen.
Damit das eben nicht passiert, entstand der Dummy-Handler, der mit
Sicherheit nicht auf das Device zugreift, sondern sich schön still im
Hintergrund hält.
Wer jedoch einen unangemeldeten Speicherbereich - wie oben erwähnt - als
Ramdisk verwenden möchte, darf in der Mountlist als "FileSystem" nicht den
Dummy-Handler eintragen, da hier ja nichts passieren würde. Je nachdem, ob
man mit dem alten Filesystem oder dem Fastfilesystem arbeiten möchte, trägt
man stattdessen entweder gar nichts ein, oder "L:FastFileSystem". (Unter
AmigaDOS 2.0 sollte man nicht einmal das tun. Es reicht als DosType für
das alte Filesystem "0x444F5300" und beim FFS "0x444F5301" anzugeben.) Bei
der Verwendung des alten Filesystems unter KickStart 1.3 muß zusätzlich
der Eintrag "Globvec=-1" gelöscht werden.
Wenn man ein "richtiges" Filesystem benutzen möchte, sollte man die Anzahl
der Puffer ("Buffers") auf einen Wert von ca. 5 heraufsetzen, sonst
verringert sich die Zugriffszeit unnötig.